package com.java.struts.foodtype.dao;

import com.java.struts.base.util.HibernateUtil;
import com.java.struts.foodtype.entity.FoodtypeinfoEntity;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.query.Query;
import org.junit.Test;

import java.util.List;

public class FoodTypeDao {
    /**
     * 查询所有的菜品类型
     * @return
     */
    public List<FoodtypeinfoEntity> listType(){
        //  获取query对象
        Query query = HibernateUtil.getQuery("from FoodtypeinfoEntity");
        // 查询
        List<FoodtypeinfoEntity> list = (List<FoodtypeinfoEntity>)query.list();
        return list;
    }

    /**
     * 查询指定菜品类型的信息
     * @param typeId
     * @return
     */
    public FoodtypeinfoEntity typeSingle(Integer typeId){
        //  获取query对象
        Query query = HibernateUtil.getQuery("from FoodtypeinfoEntity  where tid=?1");
        query.setParameter(1,typeId);
        // 查询
        FoodtypeinfoEntity type =(FoodtypeinfoEntity) query.uniqueResult();
        return type;
    }

    /**
     * 添加菜品类型
     * @param foodtype
     */
    public void addType(FoodtypeinfoEntity foodtype){
        //  获取session对象
        Session session  = HibernateUtil.getSession();
        Transaction transaction = session.beginTransaction();
        // 存储对象
        session.save(foodtype);
        transaction.commit();
        session.close();
    }

    /**
     * 删除菜品类型
     * @param typeId
     */
    public void deleteType(Integer typeId){
        //  获取session对象
        Session session  = HibernateUtil.getSession();
        Transaction transaction = session.beginTransaction();
        FoodtypeinfoEntity foodtype = new FoodtypeinfoEntity();
        foodtype.setTid(typeId);
        session.delete(foodtype);
        transaction.commit();
        session.close();
    }

    /**
     *  修改菜品类型
     * @param foodType
     */
    public void updateType(FoodtypeinfoEntity foodType){
        //  获取session对象
        Session session  = HibernateUtil.getSession();
        // 开启事务
        Transaction transaction = session.beginTransaction();
        // 查询指定id的对象
        FoodtypeinfoEntity foodtypeinfoEntity = session.get(FoodtypeinfoEntity.class, foodType.getTid());
        // 修改
        foodtypeinfoEntity.settName(foodType.gettName());
        // 更新
        session.update(foodtypeinfoEntity);
        transaction.commit();
        session.close();
    }

}
